package com.kingyea.app.market.appBaseInfo.dao;

import com.kingyea.app.market.appBaseInfo.bean.AppBaseInfo;
import com.kingyea.app.market.appBaseInfo.bean.AppBaseInfoPublishVo;
import com.kingyea.app.market.appBaseInfo.bean.AppSyncBaseInfo;
import com.kingyea.app.market.appBaseInfo.vo.AppBaseInfo2ListPageVO;
import com.kingyea.app.market.condition.AllCondition;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author
 * @version v1.0.0
 * @description AppBaseInfoMapper
 * @date Created in 2018-02-09 17:34:59
 */
public interface AppBaseInfoMapper {

    /**
     * 通过ID获取对象
     */
    AppBaseInfo getById(@Param("appCode") String appCode);

    /**
     * 通过ID删除对象
     */
    Integer deleteById(@Param("appCode") String appCode);

    /**
     * 通过ID删除对象
     */
    Integer deleteAppAuthorizationByAppCode(@Param("appCode") String appCode);

    /**
     * 更新对象
     */
    void update(AppBaseInfo obj);

    /**
     * 保存对象
     */
    int save(AppBaseInfo obj);

    /**
     * 查询列表
     */
    List<AppBaseInfo> list(Map<String, Object> obj);


    List<AppBaseInfo> getlist(Map<String, Object> appBaseInfo);

    List<AppBaseInfo> listInfo(Map<String, Object> appBaseInfo);

    List<AppBaseInfo> getByAppType(@Param(value = "appType") String classCode);

    List<AppBaseInfo> getByMarket(@Param(value = "appMarket") String marketCode);

    List<AppBaseInfo> versionList(Map<String, Object> appBaseInfo);

    List<AppBaseInfo> appList(Map<String, Object> appBaseInfo);

    List<AppBaseInfo2ListPageVO> appList_new(Map<String, Object> appBaseInfo);

    AppSyncBaseInfo getSyncList(Map<String, Object> appBaseInfo);

    /**
     * @Description: 发布的应用列表，关联了market，applicationType
     * @Param: []
     * @return: java.util.List<com.kingyea.app.market.appBaseInfo.bean.AppBaseInfo>
     * @Author: cxc
     * @Date: 2018.04.28 12:05
     */
    List<AppBaseInfoPublishVo> searchPpublishApp(AllCondition condition);

    /**
     * @Description: 版本审核列表 关联版本表（弃用）
     * @param: [condition]
     * @return: java.util.List<com.kingyea.app.market.appBaseInfo.bean.AppBaseInfo>
     * @author: cxc
     * @Date: 2018/6/2
     */
    List<AppBaseInfoPublishVo> searchPublishVerify(AllCondition condition);
}
